var EventTarget = function EventTarget() {
    //如果不能new  要抛出一个错误
}//构造函数
catvm.safefunction(EventTarget); //tostring 保护
//设置原型链上显示的名字***************************************************************************
Object.defineProperties(EventTarget.prototype, {
    [Symbol.toStringTag]: {
        value: "EventTarget",
        configurable: true
    }
});

//该原型下的函数***************************************************************************
EventTarget.prototype.dispatchEvent = function dispatchEvent() {
    debugger;
};
catvm.safefunction(EventTarget.prototype.dispatchEvent);

EventTarget.prototype.addEventListener = function addEventListener(type, callback, pro) {
    catvm.debugger_()
    if (!(type in catvm.memory.listeners)) {
        catvm.memory.listeners[type] = [];
    }
    catvm.memory.listeners[type].push(callback);
    callback()
};
catvm.safefunction(EventTarget.prototype.addEventListener);

EventTarget.prototype.removeEventListener = function removeEventListener(type, callback, pro) {
    catvm.debugger_()
    catvm.memory.listeners[type].remove(callback)
};
catvm.safefunction(EventTarget.prototype.removeEventListener);
//代理***************************************************************************
EventTarget = catvm.proxy(EventTarget)
